有了圖像資料,接著要進行資料標註,透過框選的方式告訴 AI 哪些是我們的目標,資料標註的方法有很多,這邊介紹一個好用的網站「Roboflow」,除了標註功能、擴增資料……等,還有不少完善的功能,方便我們管理資料。
標記資料 (source: unsplash)
請開啟瀏覽器,搜尋「Roboflow」,並進入網站。網站畫面如下,請大家自行點選畫面右上角的「Sign up」,註冊自己的帳號。
登入後,網站會引導大家建置 workspace,名稱與選項依自己的喜好填寫即可。
接著下個頁面會詢問,是否新增協作者的 email,沒有的話點選右下方的「Skip this step」即可。
接著可以依照自己的需求選擇公開或隱藏(需要付費),並按下創建按鈕。
設定完工作空間之後,我們就能新增專案,請點選「Create New Project」。
頁面會提示要大家選擇資料出處,因為我們使用的是自己的資料,所以選擇「Upload Your Own Data」。
接著需要大家填寫這個專案的描述,專案類型請選擇「Object Detection(Bounding Box)」,其餘請自由填寫,可參考如下圖所示。
接下來我們要將拍攝好的照片上傳到網站上,請點選「Select Folder」。
請找到儲存我們拍攝照片的「images」資料夾,並點選「Upload」。
網站這邊還會再次跳出確認視窗,同樣按下「Upload」上傳我們的照片。
Roboflow 會將照片全都顯示在視窗內,讓使用者可以再次查看是否要上傳這些內容。若資料正確無誤,即可點選右上角的「Finish Uploading」將所有照片匯入專案。
照片上傳過程如下圖所示:
照片上傳完畢後,頁面會提示說是否標註您的圖片,請點選「Assign Images」繼續。
接著點選一張照片,開始標註工作。
請使用滑鼠點選右側工具中的「方框」,並點選照片中要框選的目標附近,拖曳滑鼠繪製方框。繪製方框後會需要設定該方框代表的標籤,請輸入目標名稱,如下圖所示:
若是第一次使用,頁面會有一些提示教學,大家可以照著操作,但也可以忽視它,繼續標註其他目標。
如下圖,筆者標註了照片當中所有的紅蘿蔔與坑洞,並賦予他們不同的標籤名稱,可以看到在
Roboflow 中,不同的標籤會有不同的顏色區分。請大家依序標註自己所有的照片,雖然過程繁瑣且耗時間,但資料標註的正確性會大大影響模型的訓練,務必標註正確,且不要有過多的背景被框框包進去。
完成所有照片的標註之後,按下左上角的「左箭頭」,會離開標註工作。
於左側欄位點選「Annotate」,在右側畫面中會顯示標註與尚未標註的資訊。點選中間名為「ANNOTATING」已被標註的照片群區塊。
在此檢查每張照片是否有遺漏標註的部份,確認完畢後請點選右上角的「Add images to Dataset」按鈕。
資料集的部份通常會分群為「Train」、「Valid」與「Test」,分別用於訓練、驗證與測試模型使用。此三類資料的的比例,可以藉由拖拉兩個「圓圈」做調整,建議比例為 80:15:5,依據總體資料量多寡可以自行調整,調整完畢請點選「Add Images」。
完成資料的分群之後,我們可以依照現有的照片做一些變化,擴充照片的數量。
第三項的「Preprocessing」可以快速地幫我們的照片做一些預處理,例如調整照片的大小,筆者在此保留預設值,並按下「Continue」。
第四項的「Augmentation」可以幫助我們增強數據,請點選「Add Augmentation Step」,選取我們想要增強的效果。
畫面中可以看到,有不少增強我們照片的效果,大家可以點來看看,並選擇是否使用。
比方說我選擇了「Hue」,可以看到這個效果能隨機變換照片的顏色,變化的幅度也能自行調整。若確認要使用該效果,可以點選「Apply」按鈕。
依照方才的操作,筆者共選擇了五種增強的效果,如下圖所示,請按下「Continue」按鈕繼續。
最後我們可以選擇透過上述的增強效果組合,我們要擴充到多少張照片,免費的用戶可以擴充到三倍,在此選擇三倍的選項並按下「Generate」產生增強後的資料集。
完成資料集的創建後,我們就能匯出資料集,以便用於後續的訓練。請點選畫面中的「Export」按鈕。
不同的模型,輸入的資料格式也會不同,請對應要訓練的模型,選擇正確的模型格式,我們要訓練的是 YOLOv5 模型,所以選擇「YOLOv5 PyTorch」。匯出的方式請選擇「show download code」,這樣待會兒能直接填入 Colab 中。請按下「Continue」按鈕產生 code。
產生出來的 code 如下圖所示,圖中「api_key」的部份雖然是反黑的,但實際框選並複製貼上後就會顯示。
請大家將自己的「Download Code」如下圖一樣複製起來保留備用。
今天使用 Roboflow 完成了資料標註,並且也可以透過其 API 匯出,接著我們就能使用這些資料來訓練 YOLOv5 模型啦!
您好~~我目前正在使用Robflow進行AI訓練,但我在Label時用的是中文來進行,導致他訓練完要跑結果時無法正常顯示,請問有方法直接改Label時的名稱嗎?!![